package com.ltcode.auth.interfaces.response;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import java.io.Serializable;
import java.util.Set;

/**
 * 登录响应DTO
 * 
 * @author ltcode
 * @since 2024-01-01
 */
@Data
@ApiModel("登录响应")
public class LoginResponseDTO implements Serializable {
    
    private static final long serialVersionUID = 1L;

    @ApiModelProperty("访问令牌")
    private String accessToken;

    @ApiModelProperty("令牌类型")
    private String tokenType;

    @ApiModelProperty("过期时间（秒）")
    private Long expiresIn;

    @ApiModelProperty("刷新令牌")
    private String refreshToken;

    @ApiModelProperty("用户ID")
    private Long userId;

    @ApiModelProperty("用户名")
    private String username;

    @ApiModelProperty("昵称")
    private String nickName;

    @ApiModelProperty("头像")
    private String avatar;

    @ApiModelProperty("权限列表")
    private Set<String> permissions;

    @ApiModelProperty("角色列表")
    private Set<String> roles;
}
